﻿using System;
using System.Collections.Generic;
using System.Text;

namespace AlgorithmTest
{
    public class T_0017_DeleteNode
    {
        // 删除链表中的节点

        // 请编写一个函数，用于 删除单链表中某个特定节点 。在设计函数时需要注意，你无法访问链表的头节点 head ，只能直接访问 要被删除的节点 。
        // 题目数据保证需要删除的节点 不是末尾节点 。

        // 提示：
        //   链表中节点的数目范围是[2, 1000]
        //   -1000 <= Node.val <= 1000
        //   链表中每个节点的值都是唯一的
        //   需要删除的节点 node 是 链表中的一个有效节点 ，且 不是末尾节点

        public void Test()
        {
            var list = new ListNode(1)
            {
                next = new ListNode(3)
                {
                    next = new ListNode(5)
                    {
                        next = new ListNode(9)
                    }
                }
            };
            DeleteNode(list.next);
            while (list != null)
            {
                Console.WriteLine(list.val);
                list = list.next;
            }
            Console.Read();
        }

        public void DeleteNode(ListNode node)
        {
            node.val = node.next.val;
            node.next = node.next.next;
        }
    }
}
